package com.learning.spring.ioc.property.editor.javabean;

import java.beans.PropertyEditorSupport;

/**
 * ClassName: UserSexEditor
 * Description: 用户 User 的 sex 属性创建的属性编辑器
 * Date: 2020/7/29 14:45 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
public class UserSexEditor extends PropertyEditorSupport {

    private String[] options = {"male", "female"};

    /**
     * 将内部的属性值转换为对应的字符串表示形式，供属性表机器显示用
     *
     * @return
     */
    @Override
    public String getAsText() {
        int value = (int) getValue();
        return options[value];
    }

    /**
     * 将外部设置的字符串转换为内部属性的值
     *
     * @param text
     * @throws IllegalArgumentException
     */
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        for (int i = 0; i < options.length; i++) {
            if (options[i].equals(text)) {
                setValue(text);
                return;
            }
        }
    }

    /**
     * 可选属性值得的字符串标识数组
     *
     * @return
     */
    @Override
    public String[] getTags() {
        return options;
    }
}